<?php
/**
 * 公共控制器
 */

namespace AdminV3\Controller;
use Think\Controller;
use \Org\Util\Rbac;
use Think\Exception;
use Think\Upload;

class CommonController extends Controller
{
    function _initialize()
    {
        header("Content-Type:text/html;charset=UTF-8");
        //设置时区
        date_default_timezone_set('PRC');


        //
        //判断账号是不是已经被注销
        //1 为正常  0 为注销的账号  0 转为 false  1 转为 true

            $userStatus = M('user')->getFieldById(session('id'), 'status');

        //echo session('id') . ;die();

        //$nickname = $operation->getFieldById(session('id'),'nickname');

        //账号状态修改的时候 会即使体现。
        if(is_null($userStatus) || $userStatus == 0) {
            $this->error('账号异常,请联系管理员。',U('Index/index'),1);
        }

            $sessionTime = time() - session('time');

            if ($sessionTime <= 1800) {
                session('time', time());
                session('page',M('User')->getFieldById(session('id'),'page'));
                //var_dump(session('page'));

                //第一步:判断是否开启了认证 或 判断当前控制模块是否不需要认证
                if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
                    //第二步开始认证
                    if (!Rbac::AccessDecision()) {
                        //第三步:当认证不通过时,如何处理
                        //判断session 是否已经存放了用户标记
                        if (!$_SESSION[C('USER_AUTH_KEY')]) {
                            //用户没有登入
                            $this->error('对不起,您没有登录,请进行登录.', U('Index/index'), 1);
                            //echo "没有登入";
                        } //else 代表用户已经登录

                        if (C('GUEST_AUTH_ON')) {
                            //开启则跳转游客页面
                        }
                        $this->error('对不起,你没有操作权限');
                        //echo "没有权限";
                    }else{
                        //else认证通过了
                        //判断是否要记录操作
           /*             $arr = array('index','getUserDetails','getStudyExp','getRequireJob','getworkExp','getInterviewTime','callView','add','edit','getResult');
                        if(!in_array(ACTION_NAME,$arr)){
                            $data['operationId'] = session('id');
                            $data['nickname'] = $nickname;
                            $data['time'] = time();
                            $data['moduleName'] = MODULE_NAME;
                            $data['controllerName'] = CONTROLLER_NAME;
                            $data['actionName'] = ACTION_NAME;
                            $data['pathInfo'] = __INFO__;
                            $data['ip'] = $_SERVER['REMOTE_ADDR'];

                            D('LoginInfo')->add($data);
                        }*/

                    }
                }

            } else {
                $this->error('登入超时，请重新登入！', U('Index/index'), 1);
            }


    }

    protected function _uploadImage(&$data, $key, $value) {
    	if (!$value) return;
    	$upload = new Upload();
    	$upload->maxSize = 8145728;
    	$upload->exts = array('jpg', 'gif', 'png', 'jpeg','mp3');
    	$upload->rootPath = C('IMGURL');
    	$info = $upload->uploadOne($value);
    	if (!$info) {
    		$this->error($upload->getError());
    	} else {
            //substr(C('STATIC_URL'),strpos(C('STATIC_URL'),'51dy.ren')+8) 为路径的中间部分
            $shortStaticURL = substr(C('STATIC_URL'),strpos(C('STATIC_URL'),'51dy.ren')+8);
    		$data[$key] = getcdn() . $shortStaticURL . $info['savepath'] . $info['savename'];
    	}
    }

    //2015-12-4 修改函数 增加 一个上传图片的物理地址用于压缩图片使用。
    protected function uploadImage2(&$data, $key, $value) {
        if (!$value) return;
        $upload = new Upload();
        $upload->maxSize = 8145728;
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg','mp3');
        $upload->rootPath = C('IMGURL');
        $info = $upload->uploadOne($value);
        if (!$info) {
            $this->error($upload->getError());
        } else {
            //substr(C('STATIC_URL'),strpos(C('STATIC_URL'),'51dy.ren')+8) 为路径的中间部分
            $shortStaticURL = substr(C('STATIC_URL'),strpos(C('STATIC_URL'),'51dy.ren')+8);
            $data[$key] = getcdn() . $shortStaticURL . $info['savepath'] . $info['savename'];
            //文件物理地址
            $data[$key.'_physics_add']=C('IMGURL').$info['savepath'] . $info['savename'];
        }
    }

}
